This present embodiments relate to navigation receivers, such as global positioning satellite (GPS) receivers. GPS receivers typically output standard parameters such as time and position. GPS receivers may be used to control vehicles using proprietary software developed by the receiver manufacturer or a partner. Quite often however, there are new applications for GPS receivers that require data manipulation not performed by any existing receiver. Frequently these applications are implemented by connecting the GPS receiver to an external computer. This external computer performs some processing and outputs data or control commands. Many navigation systems that require a user display have been implemented by connecting a computer (e.g., a Wintel laptop) or personal data assistant (PDA) with a publicly defined application programming interface (API).
Application solutions that can provide high enough revenue are frequently provided by GPS receiver manufacturers, sometimes by entering into proprietary agreements with partners. The manufacturer and/or partner typically develop proprietary software to solve the problem. For example, a third party enters into an agreement to obtain a GPS receiver source code and modify the source code for implementing an application. For example, Omnistar differential corrections are derived from multiple base stations and are broadcast to users via a geosynchronous satellite. Omnistar implements the algorithms that use the corrections to improve the position accuracy. Receiver vendors link the compiled Omnistar software with their own receiver software to use the Omnistar corrections and achieve decimeter-level accuracy without a local base station. Proprietary binary modules may be provided to GPS receiver manufacturers to implement an application, such as a wide-area differential GPS algorithm. These modules are loaded by the manufacturers. In other cases, a new receiver is developed.
Example source code for GPS RF and correlator chips and reference designs for a GPS receiver that used their chips have been provided for marketing. An ISA card with GPS receiver built onto the card is marketed. That “GPS Builder” card was plugged into a PCs ISA bus. With software running on the PCs processor, the PC/GPS Builder combination was a GPS receiver. Example PC software and example schematics and layouts for the GPS Builder design were provided. Anybody who purchased the GPS builder could plug it into a computer and run the GPS builder software. They could also modify or completely replace the software to add their own functionality. This software did not run under DOS or any other commercial PC OS. Other software implementations are available for the GPS builder including one that uses Linux as the operating system.
Some PDAs have GPS functions. Applications are implemented by adding software to the PDA using public software APIs. For example, an application for a moving map is created on a WinCE GPS-enabled PDA. Many GPS receivers have a serial interface that allows an external computer to have access to GPS receiver navigation outputs such as position, velocity, and time. Often there is also serial access to lower level measurements, such as phases and satellite ephemeris. One way to construct a system with extended navigation functions is to put that software on a laptop, a tablet PC, or even a desktop computer. Extended navigation software may be added by a third party to a laptop using a combination of the public Interface Control Document for the serial stream from the GPS receiver vendor and the public API for the PCs operating system.
GPS software receivers are being developed where much of the functionality traditionally implemented in ASICS or similar digital correlators is implemented in software. The software source code for some implementations is open source. For example, Linux software for the GPS Builder is available.